perm filename CONCEP.TOC[CLS,LSP]12 blob sn#856831 filedate 1988-05-04 generic text, type T, neo UTF8
!9!!1--1
!0Common Lisp Object System Specification!!1--1
!11. Programmer Interface Concepts!!1--1
!9CONTENTS!!1--2
!2Introduction!!1--5
!2Error Terminology!!1--6
!2Classes!!1--8
!3Defining Classes!!1--9
!3Creating Instances of Classes!!1--10
!3Slots!!1--10
!3Accessing Slots!!1--12
!2Inheritance!!1--13
!3Inheritance of Methods!!1--13
!3Inheritance of Slots and Slot Options!!1--13
!3Inheritance of Class Options!!1--14
!3Examples!!1--15
!2Integrating Types and Classes!!1--16
!2Determining the Class Precedence List!!1--19
!3Topological Sorting!!1--19
!3Examples!!1--20
!2Generic Functions and Methods!!1--22
!3Introduction to Generic Functions!!1--22
!3Introduction to Methods!!1--23
!3Agreement on Parameter Specializers and Qualifiers!!1--25
!3Congruent Lambda-Lists for All Methods of a Generic Function!!1--26
!3Keyword Arguments in Generic Functions and Methods!!1--26
!2Method Selection and Combination!!1--28
!3Determining the Effective Method!!1--28
!4Selecting the Applicable Methods!!1--28
!4Sorting the Applicable Methods by Precedence Order!!1--28
!4Applying Method Combination to the Sorted List of Applicable Methods!!1--29
!3Standard Method Combination!!1--31
!3Declarative Method Combination!!1--32
!3Built-in Method Combination Types!!1--32
!2Meta-Objects!!1--35
!3Metaclasses!!1--35
!3Standard Metaclasses!!1--35
!3Standard Meta-objects!!1--35
!2Object Creation and Initialization!!1--37
!3Initialization Arguments!!1--37
!3Declaring the Validity of Initialization Arguments!!1--38
!3Defaulting of Initialization Arguments!!1--40
!3Rules for Initialization Arguments!!1--40
!3Initialize-Instance!!1--43
!3Initialize-New-Instance!!1--43
!3Procedural Definitions of Make-Instance and Initialize-New-Instance!!1--44
!2Redefining Classes!!1--46
!3Modifying the Structure of Instances!!1--46
!3Initializing Newly Added Local Slots!!1--47
!3Customizing Class Redefinition!!1--47
!3Extensions!!1--47
!2Changing the Class of an Instance!!1--49
!3Modifying the Structure of the Instance!!1--49
!3Initializing Newly Added Local Slots!!1--49
!3Customizing the Change of Class of an Instance!!1--50
!2Reinitializing an Instance!!1--51
!3Customizing Reinitialization!!1--51